package com.lagerplan.gui.wissensdatenbankverwaltung;

import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.layout.FormAttachment;
import org.eclipse.swt.layout.FormData;
import org.eclipse.swt.layout.FormLayout;
import org.apache.log4j.Logger;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.ToolBar;
import org.eclipse.swt.widgets.ToolItem;

import com.lagerplan.basisdienste.wissensbasis.persistence.WissensdatenbankDAO;
import com.lagerplan.gui.wissensdatenbankverwaltung.Kreuztabelle;

public class Verwaltung_Vertraeglichkeit_Tm_EinAuslagern_Tm_Vorzone extends Composite {

	// Logging whats going on
	private static Logger logger = Logger.getLogger( Verwaltung_Vertraeglichkeit_Tm_EinAuslagern_Tm_Vorzone.class );
	
	private Kreuztabelle kreuztabelle;
	
	private final String NAME_COLUMN_M = "Transportmittel Ein/Auslagern";
	private final String NAME_COLUMN_N = "Transportmittel Vorzone";
	
	/**
	 * Create the composite
	 * @param parent
	 * @param style
	 */
	public Verwaltung_Vertraeglichkeit_Tm_EinAuslagern_Tm_Vorzone(Composite parent, int style) {
		super(parent, style);
		setLayout(new FormLayout());

		final ToolBar toolBarWissensdatenbank = new ToolBar(this, SWT.NONE);
		final FormData fd_toolBarWissensdatenbank = new FormData();
		fd_toolBarWissensdatenbank.bottom = new FormAttachment(0, 24);
		fd_toolBarWissensdatenbank.top = new FormAttachment(0, 3);
		fd_toolBarWissensdatenbank.right = new FormAttachment(0, 75);
		fd_toolBarWissensdatenbank.left = new FormAttachment(0, 3);
		toolBarWissensdatenbank.setLayoutData(fd_toolBarWissensdatenbank);

		final ToolItem toolItemSave = new ToolItem(toolBarWissensdatenbank, SWT.PUSH);
		toolItemSave.addSelectionListener(new SelectionAdapter() {
			public void widgetSelected(SelectionEvent e) {
				action_saveMatrix();
			}
		});
		toolItemSave.setText("Save");
		
		kreuztabelle = new Kreuztabelle(this, SWT.NONE);
		final FormData fd_kreuztabelle = new FormData();
		fd_kreuztabelle.top = new FormAttachment(0,27);
		fd_kreuztabelle.bottom = new FormAttachment(100, -10);
		fd_kreuztabelle.right = new FormAttachment(100, -5);
		fd_kreuztabelle.left = new FormAttachment(0, 3);
		kreuztabelle.setLayoutData(fd_kreuztabelle);
		//
		init();

		
	}

	@Override
	public void dispose() {
		super.dispose();
	}

	@Override
	protected void checkSubclass() {
		// Disable the check that prevents subclassing of SWT components
	}

	/**
	 * Initialisiere drunterliegende Komponenten
	 */
	public void init(){
		
		kreuztabelle.initDataBinding( WissensdatenbankDAO.getTransportmittelEinAuslagernDescending(), WissensdatenbankDAO.getTransportmittelVorzone(), WissensdatenbankDAO.getVertraeglichkeitTmZumEinAuslagern_TmVorzone() );
		kreuztabelle.buildTable();
		kreuztabelle.setNameColumnM(NAME_COLUMN_M);
		kreuztabelle.setNameColumnN(NAME_COLUMN_N);
	}
	
	private void action_saveMatrix(){
		logger.debug("(action_saveMatrix) about to store Matrix entries...");
		WissensdatenbankDAO.saveVertraeglichkeitTmEinAuslagern_TmVorzone(kreuztabelle.getDataEntries());
	}
}
